Aspects of the present invention relate to the processing of messages received by a message server, and message servers that process messages that they receive. In particular, one or more aspects of the invention relate to the processing of messages to send query requests to query servers, determining timeouts for receiving responses, and determining a value for a query request in the case that a response is not received within a determined timeout.
Modern messaging systems, such as the IBM WebSphere Enterprise Service Bus (WESB), often need, when sent messages, to obtain and process large volumes of data from external sources in order to make a decision in response to the message. Data may be obtained from synchronous sources, where there is a direct connection between the messaging system and the synchronous source, and/or from asynchronous sources, where the messaging system sends a request for data to the asynchronous source which should in due course respond, but there is no direct connection.
Traditional messaging systems have waited for a complete set of responses before making a decision. However, it is common for there to be a delay before a response is received, particularly when it is being obtained from an asynchronous source. Further, as there is no direct connection, a response from an asynchronous source may not be received at all. This can lead to a considerable delay before a decision is made, or at worst the decision is not made at all.
To mitigate this problem, it is known to wait a predetermined period for a response to be received, and if no response has been received in that period to make a decision based upon only the responses so far received. For example, a message system may have a “timeout” period of 5 seconds, after which it is assumed that no response will be received.
However, this can still result in large delays before decisions are made; and even if only a small delay is caused, this can have a considerable effect due to the large number of messages a modern messaging system will be processing.
Aspects of the present invention seek to solve and/or mitigate some or all of the above-mentioned disadvantages. Alternatively and/or additionally, aspects of the present invention seek to provide improved methods of processing messages received by a message server, and improved message servers that process messages that they receive.